Timeouts in Actionable Messages
Table of contents:
This post was inspired by a message that Sergi Dominquez sent me on Twitter. It turns out, that when a request from Actionable Message in Outlook is sent to a server, Outlook waits only a specific amount of time for the response.
The timeouts are described in no official documentation. The only reason Sergi found out that is actually a case was an answer under his question posted on GitHub. Muthurathinam from Microsoft answered, that there are timeouts indeed:
- Http Action – 15 seconds
- Auto-invoke Http Action – 6 seconds (although in my tests request terminated waiting after even 4 seconds)
Http Action
That action is used in Actionable Messages to allow users to send data from the card, to the server. This action is invoked by a user, when they click on a button. Like in the example below:
The action can execute either POST or GET request.
More about the action can be found in docs here: Design actionable message cards using Adaptive Card format – Outlook Developer | Microsoft Docs.
Auto-invoke Http Action
This action is not so commonly known. Its purpose is to allow some action to be triggered when a card is being displayed. For example, to refresh the card with the latest approval data. It can be added to Actionable Message code as a separate property (just like you would add an action – remember about headers):
This action is supporting POST requests.
More about its usage you can find in docs here: Refresh an actionable message on open – Outlook Developer | Microsoft Docs.
Timeouts in Actionable Messages
So I have made my tests. Unfortunately, Muthurathinam was right. I added “Delay” in the cloud flow to stop it from sending response immediately. Then I sent myself Actionable Message, that had both Auto-invoke request and regular Http Action.
For the Auto-invoke, request was stopping to wait after only 4 seconds:
However, it was not canceled or anything like that. On the other hand, in this scenario listener was actually terminated and cloud flow was unable to send any data back to requestor:
In case of Http Action, network trace shows that Outlook was indeed waiting for 15 seconds before it canceled the request:
However in this case, which is odd, the cloud flow that was delayed, after delay was over was still able to send back response to the requester, however it was never processed nor the card was updated. Instead, after 15 seconds an error message was displayed:
Summary
There is just one final word I’d like to share here. Be sure, that the logic behind actions in your Actionable Messages is really executed fast. No-one likes to wait long, after they invoked any kind of action. The cards don’t like that either. Good luck!
Martin Mostögl
Hi Tomasz, thanks for the very helpful article. Have you ever realized, that AutoInoke, causes wrong value response in Outlook Web Client. With AutoInvoke, my values of text fields are not handed over corretly, instead it hands over the syntax itself, like {{comment.value}} and not the real value of the comment Input.Text field.
Jake Mannion
Auto Invoke is on my list of things to try, but I have only researched/read about it so far. It was good to read through your results and findings! Helpful and interesting stuff, thank you.